<?php
namespace app\common\model;
class Role extends Base{
    /**
     * 通过会员ID查找该会员的角色ID组
     * @param  integer $uid 会员ID
     * @return array
     */
    function getRoleIds($uid=0,$where=[]){
        if($uid<=0){
            return [];
        }
        $_where=[
            'member_id'=>$uid
        ];
        $map=array_merge($where,$_where);
        $list=model('role_member')->readAll($map,0,['field'=>'role_id']);
        $ids=[];
        foreach ($list as $v) {
            $ids[]=$v['role_id'];
        }
        return $ids;
    }
    /**
     * 获取角色会员
     * @param  integer $role_id 角色ID
     * @param  array   $where 额外的条件
     * @return array
     */
    function getMemberIds($role_id=0,$where=[]){
        if($role_id<=0||empty($role_id)){
            return [];
        }
        $_where=[
            'role_id'=>$role_id
        ];
        if(is_array($role_id)){
            $_where=[
                'role_id'=>['role_id','in',$role_id]
            ];
        }
        $map=array_merge($where,$_where);
        $list=model('role_member')->readAll($map,0,['field'=>'member_id']);
        $ids=[];
        foreach ($list as $v) {
            $ids[]=$v['member_id'];
        }
        $ids=array_unique($ids);
        return $ids;
    }
	/**
	 * 获取角色权限
	 * @param  integer $role_id 角色ID
     * @param  array   $where 额外的条件
	 * @return array
	 */
    function getNodeIds($role_id=0,$where=[]){
    	if($role_id<=0||empty($role_id)){
            return [];
        }
        $_where=[
            'role_id'=>$role_id
        ];
        if(is_array($role_id)){
            $_where=[
                'role_id'=>['role_id','in',$role_id]
            ];
        }
        $map=array_merge($where,$_where);
    	$list=model('role_node')->readAll($map,0,['field'=>'node_id']);
    	$ids=[];
    	foreach ($list as $v) {
    		$ids[]=$v['node_id'];
    	}
        $ids=array_unique($ids);
    	return $ids;
    }
    /**
     * 获取角色菜单
     * @param  integer $role_id 角色ID
     * @param  array   $where 额外的条件
     * @return array
     */
    function getNavsIds($role_id=0,$where=[]){
        if($role_id<=0||empty($role_id)){
            return [];
        }
        $_where=[
            'role_id'=>$role_id
        ];
        if(is_array($role_id)){
            $_where=[
                'role_id'=>['role_id','in',$role_id]
            ];
        }
        $map=array_merge($where,$_where);
        $list=model('role_navs')->readAll($map,0,['field'=>'navs_id']);
        $ids=[];
        foreach ($list as $v) {
            $ids[]=$v['navs_id'];
        }
        $ids=array_unique($ids);
        return $ids;
    }
}
